home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 February / Macworld (1998-02).dmg / Games World / Shareware Games / Board / ExaChess_Lite 1.1 / ExaChess Tools / ZZZZZZ.ReadMe < prev   
Text File  |  1996-12-30  |  6KB  |  182 lines

  1.  
  2. ZZZZZZ Chess 1.0
  3.  
  4. © G. Weisenekker
  5.  
  6. Released under the Gnu license.
  7.  
  8. Introduction
  9.  
  10. ZZZZZZ is a chess program developed by G. Weisenekker and released under
  11. the GNU licence. This version for the Mac was ported by R. Exner.
  12.  
  13. As released by G. Wiesenekker, it can be compiled for Unix, DOS, or MAC.
  14. However it is packaged as a test program for running tests in batch mode, 
  15. and has no real user interface. Most communications is through files - 
  16. files to read the run-time arguments, files to read the starting position,
  17. files to write test results to.
  18.  
  19. I have added a simple text-based user interface to permit more normal 
  20. operation as a chess program. I have also added support for the 'CHES'
  21. Apple Event suite to allow programs like ExaChess to use ZZZZZZ as a 
  22. chess engine. Used in this manner, the chess board is controlled by 
  23. ExaChess and the simple text-based interface of ZZZZZZ is adequate.
  24.  
  25.  
  26. ZZZZZZ Commands
  27.  
  28. If you launch ZZZZZZ by double clicking it, you get a console window into
  29. which you can type commands. ZZZZZZ will not automatically play a game.
  30. You need to tell it to 'go' to have it search for a move and play it.
  31.  
  32. The following commands are available:
  33.  
  34. <return> (or 'board')
  35.   Display the current board.
  36.  
  37. <moves>
  38.   Entering one or more moves, with or without move numbers, will result
  39.   in those moves being applied to ZZZZZZ's board. Moves should be in
  40.   English algebraic notation with correct capitalization (e.g. Nf3 not
  41.   nf3). If move numbers are given ZZZZZZ will take back moves as necessary 
  42.   to reset its move counter to the move number entered. 
  43.   e.g.
  44.      1 e4 e5 2 Nf3
  45.      2... Nc6
  46.  
  47. - (or 'back')
  48.   Take back the last move
  49.  
  50. game
  51.   List the moves made since the game started.
  52.  
  53. go
  54.   Search for the best move and make it. You can force the immediate end to a 
  55.   long search by holding down the option key. (The usual Mac convention of
  56.   typing Command-period will abort ZZZZZZ).
  57.  
  58. help
  59.   Display a summary of available commands
  60.  
  61. newgame
  62.   Reset the board to the standard starting position
  63.  
  64. setboard <position>
  65.   Set the board to a custom startup position. <position> is given in Forsyth notation,
  66.   which is a one-line representation of the board, scanned by row starting with a8-h8, 
  67.   followed by a7-h7, etc. to a1-h1. For each row, denote Black pieces by prnbqk, White 
  68.   pieces by PRNBQK, and empty squares by an integer 1 to 8 (being the number of 
  69.   consecutive empty squares). Use a comma or slash to separate rows, and enclose 
  70.   the whole string in slashes. 
  71.   For example, the standard starting position itself is
  72.     rnbqkbnr,pppppppp,8,8,8,8,PPPPPPPP,RNBQKBNR
  73.  
  74.   A position entered in this way is assumed to have White-to-move, both sides with 
  75.   maximum possible castling rights, and no en passant square. To override these 
  76.   defaults, append up to three terms to the above string, separated with commas: 
  77.   ‘white’ or ‘black’, the castling rights as a 4-character string ‘KQkq’ (White 
  78.   kingside, queenside, Black kingside, queenside respectively) with forfeited rights 
  79.   replaced by a ‘-’, and the en passant square. For example, after the initial moves 
  80.   1 e4 d5 2 Ke2 de 3 d4, White has lost the right to castle Kingside and Queenside 
  81.   and d3 is the en passant square, and so the position is
  82.     rnbqkbnr,ppp1pppp,8,8,3Pp3,8,PPP1KPPP,RNBQ1BNR,black,--kq,d3
  83.  
  84. set <param> <value>
  85.   Set the named parameter to the value given.  ZZZZZZ supports the following 
  86.   parameters:
  87.  
  88.       usebook
  89.           - if 1, use the opening book; if 0, don’t use the opening book
  90.       timelimit
  91.           - the time limit in seconds for a search
  92.       echo
  93.           - if 1, echo a copy of all screen output to the file zzlog 
  94.       verbose
  95.           - if 1, display search progress and stats when searching
  96.   
  97.   e.g. to set the timelimit to 15 seconds response time per move:
  98.      set timelimit 15
  99.  
  100. show [<param>]
  101.   Show the value of the named parameter, or if no parameter is given, the
  102.   value of all parameters. 
  103.  
  104. quit (or 'q')
  105.   Exit the program
  106.  
  107.      
  108. Startup file
  109.  
  110. If there is a file called zzstartup in the same directory as ZZZZZZ, it will
  111. read this file and process commands in it before fetching commands from
  112. the console. Use this file to set options such as the default timelimit, or
  113. a special startup position or partial game.
  114.  
  115. You can also place a complete test script into this file to have ZZZZZZ
  116. run the test script with a minimum of user interaction. (You can also
  117. to this via the Apple Event interface). If the last command in the file
  118. is quit, then ZZZZZZ will quit without ever requesting input from the 
  119. console.
  120.  
  121.  
  122. Opening book
  123.  
  124. When ZZZZZZ starts up, it looks for the files zzbook.w and zzbook.b
  125. which are its encoded opening book. These files should be in the same
  126. directory as ZZZZZZ. If they are not, it looks for the file zzbook.txt
  127. and rebuilds the opening book. The zzbook.txt file uses the same format
  128. as GNUChess, and the supplied file is the same as the Nunn book provided
  129. with GNUChess3. It is not included in this distribution. The format of this 
  130. book is as follows:
  131.  
  132. g1f3 b7b5 g2g3 e7e6 a2a4 b5b4 b2b3 c8b7 f1g2 f7f5 c1b2 g8f6 d2d3 b8a6 f3h4
  133. !
  134. g1f3 g7g6 g2g3 f8g7 f1g2 e7e5 e2e4 b8c6 d2d3 d7d6  o-o g8e7 b1d2  o-o c2c3 h7h6
  135. !
  136. g1f3 f7f5 g2g3 g8f6 f1g2 e7e6 d2d3 f8e7  o-o  o-o b1d2 d7d6 e2e4 f5e4
  137. !
  138.  
  139. When building the book ZZZZZZ will check whether the entered line results in a
  140. material loss which is not immediately returned (i.e. a probable gambit). Any such lines
  141. are rejected.
  142.  
  143.  
  144. Stats
  145.  
  146. time=time_used
  147. stats=ngens, ndos, nevals, nhits, nextends
  148.  
  149. ngens = number of times the set of moves is generated
  150. ndos = number of times domove is called on a legal move
  151. nevals = number of times evaluation routines are called
  152. nhits = number of times transposition cache holds evaluation instead
  153. nextends = ??
  154.  
  155.  
  156. Scripting
  157.  
  158. ZZZZZZ is scriptable using Apple’s scripting system. Here is a small
  159. script to demonstrate ZZZZZZ’s scripting capabilities:
  160.  
  161. tell application "ZZZZZZ"
  162.     new game
  163.     move "1 e4 e5 2 Nf3 Nc6 3 Bb5 a6"
  164.     move "2… Nf6"    
  165.   search ""
  166. end tell 
  167.  
  168.  
  169. Porting Notes
  170.  
  171. To build the Mac release, you need the following files from the zzzzzz 
  172. distribution:
  173.     zzzzzz.c
  174.     zzzzzz.h 
  175. plus the following files for the Mac port:
  176.     ChessEvents.c
  177.     main.c
  178.     zzglue.c
  179. Contact R. Exner (r.exner@trl.oz.au) for a copy of these files.
  180.  
  181.  
  182.